(HSP3) sample1 [BasicSample].hsp

sample\hspdsc\(HSP3) sample1 [BasicSample].hsp » Plain Format

#include "hspdsc.as"
	
	title "DirectShow キャプチャデバイス表示 サンプル(1つのみ)	"
	cls 4
	dsc_Init				// 初期化を必ずする!

	// バッファのサイズ取得し sdim で 確保
	sdim devlist, dsc_GetDeviceListSize()
	dsc_GetDeviceList devlist // 利用可能なデバイス一覧取得
	if stat = 0 : dialog "デバイスが見つかりません" : end

	objsize 300, 20
	combox id, 100, devlist
	
	objsize 150,20
	button "デバイスを再生",*play
	button "デバイスを停止",*_stop
	button "プロパティを表示",*prop
	button "解像度プロパティを表示",*prop2
	button "プロパティ表示(自前)",*prop3
	button "キャプチャして表示",*capture
	button "BMPで保存して表示",*savebmp

	button "終了する",*exit
	
	stop
	
*play
	// 操作ID 0 指定(デフォルトでは0が指定されているため書かなくてもOK)
	dsc_SetActiveSel 0
	// デバイスのオープン
	dsc_Open id, 0, 0, 0, 0
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat, 1, "DEVICE-ERROR" : stop
	gsel 0, 1
	// デバイスの再生
	dsc_Play hwnd, 160, 120, 320, 240
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat,1,"CAPTURE-ERROR" : stop

	stop
*_stop
	// デバイスのクローズ
	dsc_Close
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat, 1, "CLOSE-ERROR" : stop
	stop
*prop
	// デバイスのフィルタプロパティ表示 再生中でないと失敗します。
	dsc_FilterProp  hwnd, "Device Filter"
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat, 1, "FILTER-ERROR" : stop
	stop
*prop2
	// dsc_playを使う前でないとうまく実行できない為、再生中の場合は一度リセットする。

	dsc_Close							// クローズする
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat, 1, "CLOSE-ERROR" : stop
	dsc_Open id, 0, 0, 0, 0				// 再度オープン
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat, 1, "DEVICE-ERROR" : stop
	gsel 0,1
	dsc_DevPinProp hwnd					// プロパティを表示
	dsc_Play hwnd, 160, 120, 320, 240	// 再び再生
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat,1,"CAPTURE-ERROR" : stop

	stop
*capture
	
	// ウィンドウ用意
	screen 1, dsc_CapX, dsc_CapY
	// キャプチャ
	dsc_GetImage hdc, 0, 0, dsc_CapX, dsc_CapY
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat,1,"CAPTURE-ERROR" : stop
	redraw 1					// これは必ず必要です。
	gsel 0, 1
	
	stop

*savebmp
	// BMPで保存
	dsc_SaveBMP "test.bmp"
	if stat < 0 : dialog "エラーが発生しました\nstat = " + stat,1,"CAPTURE-ERROR" : stop
	screen 1, 32, 32
	picload "test.bmp"
	gsel 0, 1

	stop
*exit
	// クローズ
	dsc_Stop
	dsc_Close
	end

*prop3
	//サイズとFourCCを取得します
	dialog "サイズ:"+dsc_CapX+"x"+dsc_CapY+"\nFourCC:"+dsc_FourCC+"\n"+strf("%2.2ffps",double((1.0 * 10 * 1000 * 1000) / dsc_AvgFrame))
	stop